package com.cjack.frenchexcel.model;

import com.sargeraswang.util.ExcelUtil.ExcelCell;

import java.io.Serializable;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;

public class RechargeRecordModel implements Serializable {

    //第0列是行号，不处理

    @ExcelCell(index = 1)
    private String dealTime;//交易时间

    @ExcelCell(index = 2)
    private String merchantOrderNo;//商户订单号

    @ExcelCell(index = 3)
    private String platformOrderNo;//平台订单号

    @ExcelCell(index = 4)
    private String thirdPartyOrderNo;//第三方订单号

    @ExcelCell(index = 5)
    private String merchantName;//商户名称

    @ExcelCell(index = 6)
    private String merchantNumber;//商户号

    @ExcelCell(index = 7)
    private String cashierNumber;//收银员编号

    @ExcelCell(index = 8)
    private String payType;//支付类型

    @ExcelCell(index = 9)
    private String dealStatus;//交易状态

    @ExcelCell(index = 10)
    private String refundMoney;//退款金额

    @ExcelCell(index = 11)
    private String payMoney;//支付金额

    @ExcelCell(index = 12)
    private String payCurrencyType;//支付币种

    @ExcelCell(index = 13)
    private String exchangeRate;//汇率

    @ExcelCell(index = 14)
    private String merchantOrderAmount;//商户订单总额

    @ExcelCell(index = 15)
    private String merchantCurrencyType;//商户币种

    @ExcelCell(index = 16)
    private String terminalNumber;//终端设备号

    @ExcelCell(index = 17)
    private String memo;//备注

    private Long id;//数据库的id
    //到帐状态，有以下几个值
    // 1-已收款-               支付宝付款时间
    // 2-外汇兑换中-            支付宝付款的第二天
    // 3-消费中心转账中-        第三天或被覆盖
    // 4-法国银行转账中-        支付宝收款状态中的确认到账
    // 5-卡额分配中-            安排转账的操作完成
    // 6-到账                   确认到账
    private String moneyStatus;
    private String dealTimeFrench;//交易时间-法国时间
    private String jobNumber;  //充值记录的收银员编号 对应的 员工的 员工编号
    private Date createTime;
    private Date updateTime;
    //对应首页第一步 确定到账的时间
    private Date updateMoneyStatusOne;
    //对应首页第二步 确定到账的时间
    private Date updateMoneyStatusTwo;
    //对应首页第三步 确定到账的时间
    private Date updateMoneyStatusThree;

    private String rechargeTypeCode;//收款类型   code
    private String rechargeTypeName;//收款类型   名称
    private String otherId;//来源记录表的id
    private String sourceFrom;//数据来源

    //导入人
    private Long importUserId;

    public String getDealTime() {
        return dealTime;
    }

    public void setDealTime(String dealTime) {
        this.dealTime = dealTime;
    }

    public String getMerchantOrderNo() {
        return merchantOrderNo;
    }

    public void setMerchantOrderNo(String merchantOrderNo) {
        this.merchantOrderNo = merchantOrderNo;
    }

    public String getPlatformOrderNo() {
        return platformOrderNo;
    }

    public void setPlatformOrderNo(String platformOrderNo) {
        this.platformOrderNo = platformOrderNo;
    }

    public String getThirdPartyOrderNo() {
        return thirdPartyOrderNo;
    }

    public void setThirdPartyOrderNo(String thirdPartyOrderNo) {
        this.thirdPartyOrderNo = thirdPartyOrderNo;
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public String getMerchantNumber() {
        return merchantNumber;
    }

    public void setMerchantNumber(String merchantNumber) {
        this.merchantNumber = merchantNumber;
    }

    public String getCashierNumber() {
        return cashierNumber;
    }

    public void setCashierNumber(String cashierNumber) {
        this.cashierNumber = cashierNumber;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public String getDealStatus() {
        return dealStatus;
    }

    public void setDealStatus(String dealStatus) {
        this.dealStatus = dealStatus;
    }

    public String getRefundMoney() {
        return refundMoney;
    }

    public void setRefundMoney(String refundMoney) {
        this.refundMoney = refundMoney;
    }

    public String getPayMoney() {
        return payMoney;
    }

    public void setPayMoney(String payMoney) {
        this.payMoney = payMoney;
    }

    public String getPayCurrencyType() {
        return payCurrencyType;
    }

    public void setPayCurrencyType(String payCurrencyType) {
        this.payCurrencyType = payCurrencyType;
    }

    public String getExchangeRate() {
        return exchangeRate;
    }

    public void setExchangeRate(String exchangeRate) {
        this.exchangeRate = exchangeRate;
    }

    public String getMerchantOrderAmount() {
        return merchantOrderAmount;
    }

    public void setMerchantOrderAmount(String merchantOrderAmount) {
        this.merchantOrderAmount = merchantOrderAmount;
    }

    public String getMerchantCurrencyType() {
        return merchantCurrencyType;
    }

    public void setMerchantCurrencyType(String merchantCurrencyType) {
        this.merchantCurrencyType = merchantCurrencyType;
    }

    public String getTerminalNumber() {
        return terminalNumber;
    }

    public void setTerminalNumber(String terminalNumber) {
        this.terminalNumber = terminalNumber;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public String getMoneyStatus() {
        return moneyStatus;
    }

    public void setMoneyStatus(String moneyStatus) {
        this.moneyStatus = moneyStatus;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDealTimeFrench() {
        return dealTimeFrench;
    }

    public void setDealTimeFrench(String dealTimeFrench) {
        this.dealTimeFrench = dealTimeFrench;
    }

    public Long getImportUserId() {
        return importUserId;
    }

    public void setImportUserId(Long importUserId) {
        this.importUserId = importUserId;
    }

    public String getJobNumber() {
        return jobNumber;
    }

    public void setJobNumber(String jobNumber) {
        this.jobNumber = jobNumber;
    }

    public Date getUpdateMoneyStatusOne() {
        return updateMoneyStatusOne;
    }

    public void setUpdateMoneyStatusOne(Date updateMoneyStatusOne) {
        this.updateMoneyStatusOne = updateMoneyStatusOne;
    }

    public Date getUpdateMoneyStatusTwo() {
        return updateMoneyStatusTwo;
    }

    public void setUpdateMoneyStatusTwo(Date updateMoneyStatusTwo) {
        this.updateMoneyStatusTwo = updateMoneyStatusTwo;
    }

    public Date getUpdateMoneyStatusThree() {
        return updateMoneyStatusThree;
    }

    public void setUpdateMoneyStatusThree(Date updateMoneyStatusThree) {
        this.updateMoneyStatusThree = updateMoneyStatusThree;
    }

    public String getRechargeTypeCode() {
        return rechargeTypeCode;
    }

    public void setRechargeTypeCode(String rechargeTypeCode) {
        this.rechargeTypeCode = rechargeTypeCode;
    }

    public String getRechargeTypeName() {
        return rechargeTypeName;
    }

    public void setRechargeTypeName(String rechargeTypeName) {
        this.rechargeTypeName = rechargeTypeName;
    }

    public String getOtherId() {
        return otherId;
    }

    public void setOtherId(String otherId) {
        this.otherId = otherId;
    }

    public String getSourceFrom() {
        return sourceFrom;
    }

    public void setSourceFrom(String sourceFrom) {
        this.sourceFrom = sourceFrom;
    }

    public static Map<String,String> getColMap(){
        //用排序的Map且Map的键应与ExcelCell注解的index对应
        Map<String,String> map = new LinkedHashMap<>();
        map.put( "a", "交易时间");
        map.put( "b", "商户订单号");
        map.put( "c", "平台订单号");
        map.put( "d", "第三方订单号");
        map.put( "e", "商户名称");
        map.put( "f", "商户号");
        map.put( "g", "收银员编号");
        map.put( "h", "支付类型");
        map.put( "i", "交易状态");
        map.put( "j", "退款金额");
        map.put( "k", "支付金额");
        map.put( "l", "支付币种");
        map.put( "m", "汇率");
        map.put( "n", "商户订单总额");
        map.put( "o", "商户币种");
        map.put( "p", "终端设备号");
        map.put( "q", "备注");

        return map;
    }
}
